package com.kevis.zhunblog.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.kevis.zhunblog.core.dto.sys.SysMenu;
import com.kevis.zhunblog.core.entities.PowerMenuEntity;

import java.util.List;

/**
 *
 */
public interface PowerMenuService extends IService<PowerMenuEntity> {
    List<SysMenu> getUserMenu(String username);
    List<SysMenu> toTreeUserMenu(List<SysMenu> sysMenus, Integer parentId);

    List<SysMenu> getMenuList();

    /**
     * 根据url和菜单编码返回实体
     * @param url
     * @param menuCode
     * @return
     */
    PowerMenuEntity getByUrlMenuCode(String url, String menuCode);

    /**
     * 根据url返回菜单实体
     * @param url
     * @return
     */
    PowerMenuEntity getByUrl(String url);

    /**
     * 根据列表的菜单地址以及按钮的标识进行查询按钮的实体
     * @param url
     * @param menuCode
     * @return
     */
    PowerMenuEntity getByListUrlAndMenuCode(String url,String menuCode);

    /*************************************/
    /**
     * Describe: 根据条件查询权限列表数据
     * Param: SysPower
     * Return: 返回用户列表数据
     */
    List<PowerMenuEntity> list(PowerMenuEntity sysPower);

    /**
     * Describe: 根据 parentId 查询权限
     * Param: parentId
     * Return: 操作结果
     */
    List<PowerMenuEntity> selectByParentId(String parentId);

    List<PowerMenuEntity> listMenu(PowerMenuEntity sysPower);

    /**
     * Describe: 根据 id 删除权限
     * Param: id
     * Return: 操作结果
     */
    boolean remove(String id);

    /**
     * 根据传入url判断是否有这个菜单
     * @param url
     * @return
     */
    boolean existsByUrl(String url);

    /**
     * 根据列表的guid以及唯一标识,主要查询按钮对应的菜单项
     * @param actionGuid
     * @param menuCode
     * @return
     */
    PowerMenuEntity getByMenuCode(String actionGuid, String menuCode);
}
